package com.cloudsea.yunhaistores.controller;

import com.cloudsea.yunhaistores.dto.PaymentNotifyDTO;
import com.cloudsea.yunhaistores.service.PaymentService;
import com.cloudsea.yunhaiutils.common.ApiResponse;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Tag(name = "支付回调管理", description = "用于接收第三方支付渠道的异步通知")
@RestController
@RequestMapping("/payments")
public class PaymentController {

    @Autowired
    private PaymentService paymentService;

    @Operation(summary = "【模拟】支付成功回调", description = "在真实场景中，此接口由微信/支付宝服务器调用。我们现在用它来手动模拟订单支付成功的事件。")
    @PostMapping("/notify/success")
    public ApiResponse<Void> handlePaymentSuccess(@Valid @RequestBody PaymentNotifyDTO dto) {
        paymentService.handleSuccessfulPayment(dto);
        // TODO:在真实场景中，这里通常需要按支付渠道的文档要求返回特定格式的响应
        // 例如，微信支付需要返回一个不带任何内容的XML或JSON，表示“我已收到，请勿重发”
        // 为方便我们测试，继续使用标准ApiResponse
        return ApiResponse.success("回调处理成功", null);
    }
}
